package org.example.springbook.model;

import lombok.Data;

import java.util.List;

@Data
//使不使用泛型 都可以 这里使用泛型的原因是 想将以前学过的内容结合起来
public class PageResult<T> {

    /**
     * 当前页的内容
     */
    private List<T> records;
    /**
     * 总记录数
     */
    private Integer total;

    // 我们要实现强制登陆 因为不实现的时候, 我们不需要登录也可以访问图书列表 进行修改,删除操作
    // 那我们需要后端进行登录校验, 判断是否登录, 这两种情况返回的都是PageResult
    // 如果你登陆了, 数据库中没有数据, records就会为空 total数也为0
    // 如果你没登陆, 后端返回的结果中 records也为空 total也为0
    // 那么这样就没法区分了 所以我们就引入了业务状态码 这个和http状态码是不一样的

   /* private Integer code; //0 成功 -1 失败 -2 未登录
    // 根据状态码 如果失败了 也可以返回一个错误信息 这个信息前端拿到后
    // 就可以显示给我们的用户了
    private String errMsg;

    // 比如用户未登录 后端给我返回一些信息
    // 添加图书 修改图书的时候 我也想后端给我返回一些状态码或者一些信息
    // 那么我们可以将这些抽出来 对返回数据的结果再进行一个封装
    然后我们就新建了一个Result类*/


    private PageRequest pageRequest;

    public PageResult(List<T> records, Integer total, PageRequest pageRequest) {
        this.records = records;
        this.total = total;
        this.pageRequest = pageRequest;
    }
}
